import { Context, Next } from 'koa';
import { error } from '../utils/response';
import { ResponseCode } from '../config/responseCode';

/**
 * 强制所有API使用POST和JSON格式
 */
export async function jsonBodyMiddleware(ctx: Context, next: Next): Promise<void> {
  // 只处理API路由
  if (ctx.path.startsWith('/api/')) {
    if (ctx.method !== 'POST') {
      error(ctx, ResponseCode.METHOD_NOT_ALLOWED, '所有API必须使用POST方法');
      return;
    }

    if (!ctx.is('application/json')) {
      error(ctx, ResponseCode.BAD_REQUEST, '请求Content-Type必须是application/json');
      return;
    }
  }

  await next();
}

